/***************************************************
> Copyright (C) 2024 ==QWZL== All rights reserved.
> File Name: threadPool.h
> Author:nxq
> Mail:nxq949698473@163.com 
> Created Time: 2024年07月14日 星期日 15时48分27秒
***************************************************/

#ifndef _THREADPOOL_H_
#define _THREADPOOL_H_

#include "queue.h"

//线程池结构体
typedef struct threadPool
{
   sem_t semw;//写信号量
   sem_t semr;//读信号量
   pthread_mutex_t mutex;//定义互斥锁

   struct queue *queue;//队列
   pthread_t *tids;//线程ID数组

   int threads;//线程池中线程数量
   int queue_max_length;//队列长度，最大任务数量
}threadPool;

//创造线程池函数
struct threadPool * create_threadPool(int threads,int queue_length);
//销毁线程池函数
void  destroy_threadPool(struct threadPool  *pool);

void *consumer(void* arg);

#endif
